// Package convert 提供了一组转换函数，用于将uint16类型的值转换为其他类型。
package convert

import (
	"errors"
	"math"
	"strconv"
)

// Uint16ToInt 将uint16类型的值转换为int类型，不进行溢出检查。
func Uint16ToInt(value uint16) (int, error) {
	return int(value), nil
}

// Uint16ToInt8 将uint16类型的值转换为int8类型，如果超出int8范围则返回错误。
func Uint16ToInt8(value uint16) (int8, error) {
	if value > math.MaxInt8 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return int8(value), nil
}

// Uint16ToInt16 将uint16类型的值转换为int16类型，不进行溢出检查。
func Uint16ToInt16(value uint16) (int16, error) {
	return int16(value), nil
}

// Uint16ToInt32 将uint16类型的值转换为int32类型，不进行溢出检查。
func Uint16ToInt32(value uint16) (int32, error) {
	return int32(value), nil
}

// Uint16ToInt64 将uint16类型的值转换为int64类型，不进行溢出检查。
func Uint16ToInt64(value uint16) (int64, error) {
	return int64(value), nil
}

// Uint16ToUint 将uint16类型的值转换为uint类型，不进行溢出检查。
func Uint16ToUint(value uint16) (uint, error) {
	return uint(value), nil
}

// Uint16ToUint8 将uint16类型的值转换为uint8类型，如果超出uint8范围则返回错误。
func Uint16ToUint8(value uint16) (uint8, error) {
	if value > math.MaxUint8 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return uint8(value), nil
}

// Uint16ToUint32 将uint16类型的值转换为uint32类型，不进行溢出检查。
func Uint16ToUint32(value uint16) (uint32, error) {
	return uint32(value), nil
}

// Uint16ToUint64 将uint16类型的值转换为uint64类型，不进行溢出检查。
func Uint16ToUint64(value uint16) (uint64, error) {
	return uint64(value), nil
}

// Uint16ToFloat32 将uint16类型的值转换为float32类型，不进行溢出检查。
func Uint16ToFloat32(value uint16) (float32, error) {
	return float32(value), nil
}

// Uint16ToFloat64 将uint16类型的值转换为float64类型，不进行溢出检查。
func Uint16ToFloat64(value uint16) (float64, error) {
	return float64(value), nil
}

// Uint16ToString 将uint16类型的值转换为字符串类型。
func Uint16ToString(value uint16) string {
	return strconv.FormatUint(uint64(value), 10)
}

// Uint16ToBool 将uint16类型的值转换为bool类型，非零值转换为true，零值转换为false。
func Uint16ToBool(value uint16) bool {
	return value != 0
}
